﻿//----------------------------------------------------------------
// Desc: 环境管理器
// Edit: ShowLong, http://blog.csdn.net/showlong
//
// Date Created: 2012-04-04
//
// Update Date : 
//
// Copyright (c) Fuel4D (http://www.fuel4d.com), All rights reserved.
//
//----------------------------------------------------------------
#pragma once


#include "IFEnv_Config.h"
#include "IFEnv_Camera.h"
#include "IFEnv_Sunlight.h"
#include "IFEnv_Fog.h"
#include "IFEnv_Pointolite.h"


class IFEnvMgr : public IFService
{
protected:
    IFEnvMgr()
        :IFService(0)
    {}

public:
    // 设置自动清屏时的背景颜色（ARGB格式）
    virtual DWORD SetBackColor(DWORD c) = 0;
    // 获取自动清屏时的背景颜色（ARGB格式）
    virtual DWORD GetBackColor() = 0;
    // 获取引擎环境配置
    virtual IFEnvConfig* GetEnvConfig() = 0;
    // 获取摄像机数据
    virtual IFCamera* GetCamera() = 0;
    // 获取太阳光数据
    virtual IFSunlight* GetSunlight() = 0;
    // 获取雾数据
    virtual IFFog* GetFog() = 0;
    // 获取点光源数据（范围为 0 至 eCD_MaxPointolite）
    virtual IFPointolite* GetPointolite(size_t idx) = 0;

    //----------------------------------------------------------------
    // 以下由引擎使用
    //----------------------------------------------------------------
	// 获取颜色操作4元素
	virtual FVECTOR4* GetColorProcess() = 0;
    // 获取颜色操作4元素
    virtual FVECTOR4* GetColorData() = 0;
};